Skip to content

php 8.6 compatibility with all bundled extensions - #1226

Merged
henderkes merged 13 commits into
v3from
feat/php86
Aug 12, 2026
Merged

php 8.6 compatibility with all bundled extensions#1226
henderkes merged 13 commits into
v3from
feat/php86

Conversation

@henderkes

Copy link
Copy Markdown
Collaborator

What does this PR do?

prepares php 8.6 compatibility
there's still a small issue with RHEL 9 and older, but that's for another pr

used craft.yml to test this:

php-version: 8.6
extensions: "ctype,curl,date,dom,fileinfo,filter,ftp,hash,intl,json,lexbor,libxml,mbstring,mbregex,opcache,openssl,password-argon2,pcntl,pcre,phar,posix,random,readline,reflection,session,shmop,simplexml,snmp,soap,sockets,sodium,spl,sqlite3,standard,tokenizer,uri,xml,xmlreader,xmlwriter,zip,zlib"
shared-extensions: "bcmath,bz2,calendar,dba,exif,ffi,gd,gettext,gmp,iconv,ldap,mysqli,mysqlnd,odbc,pdo,pdo_mysql,pdo_pgsql,pdo_sqlite,pdo_odbc,pgsql,tidy,xsl,sysvmsg,sysvsem,sysvshm"
sapi:
  - cli
  - frankenphp
  - embed
download-options:
  ignore-cache: php-src
build-options:
  enable-zts: true

@henderkes
henderkes requested a review from crazywhalecc August 7, 2026 20:03
@crazywhalecc crazywhalecc added the need-test This PR has not been tested yet, cannot merge now label Aug 8, 2026
@github-actions

github-actions Bot commented Aug 8, 2026

Copy link
Copy Markdown

StaticPHP Test Bot

Detected: Extensions: gd, intl, pdo_pgsql, pgsql, swoole | Libraries: libwebp | Targets: php
Active labels: test/php-86
Available labels: need-test (gate), test/linux test/windows test/macos (platform), test/tier2 (extra arch), test/php-83 test/php-84 (PHP version), sapi/frankenphp (extra FrankenPHP SAPI build)
Config: Linux x86_64 + Windows x86_64 + macOS arm64 | PHP 8.5, PHP 8.6 NTS

Comment thread src/Package/Extension/pgsql.php Outdated
Comment on lines +33 to +40
/** These override pkg-config, so they must carry libpq itself too */
public static function libpqConfigureVars(PackageBuilder $builder, PackageInstaller $installer): string
{
$closure = DependencyResolver::getResolvedPackageClosure(['postgresql'], array_keys($installer->getResolvedPackages()));
$libfiles = new SPCConfigUtil(['no_php' => true, 'libs_only_deps' => true])->configWithResolvedPackages($closure)['libs'];
return ' PGSQL_CFLAGS=-I' . $builder->getIncludeDir() .
' PGSQL_LIBS="-L' . $builder->getLibDir() . ' ' . $libfiles . '"';
}

Copy link
Copy Markdown
Owner

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This is definitely not the optimal solution. We could use configForResolvedBuild() instead of a static helper to achieve the same result.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
@henderkes

Copy link
Copy Markdown
Collaborator Author

Swoole couldn't possibly work, I'm not sure why it's even tested.

@henderkes

Copy link
Copy Markdown
Collaborator Author

all the failing tests are now not-build-in extensions @crazywhalecc

@henderkes
henderkes requested a review from crazywhalecc August 12, 2026 10:44
Comment thread src/globals/patch/php-src-patches/cli_checks_86.patch
Comment thread src/globals/test-extensions.php Outdated
Comment thread src/Package/Artifact/libaom.php Outdated
Comment thread src/StaticPHP/Artifact/Downloader/Type/PhpRelease.php
Comment thread docs/deps-craft-yml.md Outdated
Comment thread src/Package/Target/php/unix.php Outdated
@henderkes
henderkes merged commit d36c6f1 into v3 Aug 12, 2026
34 of 38 checks passed
@henderkes
henderkes deleted the feat/php86 branch August 12, 2026 19:40
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

need-test This PR has not been tested yet, cannot merge now test/php-86

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants